//package com.zhj.edu.messagecenterserver.mqtt.observer.impl;
//
//import com.alibaba.fastjson2.JSON;
//import com.zhj.edu.bo.HardwareMessageBo;
//import com.zhj.edu.constance.RedisConstance;
//import com.zhj.edu.manager.RedisManager;
//import com.zhj.edu.messagecenterserver.mqtt.observer.base.Observer;
//import com.zhj.edu.mqtt.data.MessagePayload;
//import com.zhj.edu.mqtt.data.MqttMessage;
//import lombok.extern.slf4j.Slf4j;
//import org.joda.time.DateTime;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
///**
// * @author xiaobobo
// * @title: HeartInfoHandlerObserver
// * @projectName cd-fy-2401-third-project-parent
// * @description: 心跳信息处理的观察者
// * 心跳信号维护的目的是说明这个硬件还活着  如果没有活着 那么还要剔除
// * @date 2024/10/9  17:34
// */
//@Component
//@Slf4j
//public class HeartInfoHandlerObserver implements Observer {
//
//    @Autowired
//    private RedisManager redisManager;
//
//    @Override
//    public void notifyHandler(MqttMessage mqttMessage) {
//        log.info("心跳信号正在维护....");
//        /**
//         * 心跳信号我们是直接维护到 Redis中
//         * 直接采用Hash结构来存储
//         * 集合的名字   heart:info   设备key    当前时间
//         */
//        //首先取出这个载荷信息
//        MessagePayload messagePayload = mqttMessage.getMessagePayload();
//        //这个消息就是实际的硬件信息
//        String payload = messagePayload.getPayload();
//        //转换上述的消息为对象
//        HardwareMessageBo hardwareMessageBo = JSON.parseObject(payload, HardwareMessageBo.class);
//        //于是就可以取出这个设备key了
//        String device = hardwareMessageBo.getDevice();
//        //接下来我们就可以进行续约了
//        redisManager.addHash(RedisConstance.getHeartInfoHashName(),device, DateTime.now().getMillis());
//        log.info("本轮心跳信号续约完成....");
//    }
//}
